import 'package:flutter/cupertino.dart';
import 'package:flutter_quick/pages/home/home.dart';

enum ConversationItemType { apple, banana }
enum MessageItemItemType { apple, banana }

class ConversationItem {
  String avatar;
  String title;
  String lastMsg;
  String uid;
  ConversationItemType type;

  ConversationItem({
    required this.avatar,
    required this.title,
    required this.type,
    required this.lastMsg,
    required this.uid,
  });
}

/// 消息体
class TextMessageContent {
  String text;
  TextMessageContent({required this.text});
}

/// 消息项
class MessageItemItem {
  String avatar;
  String name;
  TextMessageContent? textMessageContent;

  MessageItemItem({
    required this.avatar,
    required this.name,
    this.textMessageContent,
  });
}

abstract class IMInterface {
  /// 初始化 SDK
  init() {}

  /// 反初始化 SDK
  unInit() {}

  /// 登录
  login() {}

  /// 退出登录
  logout() {}

  /// 获取登录状态
  getLoginStatus() {}

  /// 获取当前登录用户的 UserID
  getLoginUser() {}

  /// 发送单聊（C2C）普通文本消息
  sendTextMessage() {}

  /// 发送群聊普通文本消息
  sendGroupTextMessage() {}

  ///	发送自定义消息
  sendCustomMessage() {}

  ///	发送图片消息
  sendImageMessage() {}

  ///	发送语音消息
  sendSoundMessage() {}

  ///	发送视频消息
  sendVideoMessage() {}

  ///	发送文件消息
  sendFileMessage() {}

  ///	发送地理位置消息
  sendLocationMessage() {}

  ///	获取单聊（C2C）历史消息
  getC2CHistoryMessageList() {}

  ///	获取群组历史消息
  getGroupHistoryMessageList() {}

  ///	设置单聊（C2C）消息已读
  markC2CMessageAsRead() {}

  ///	设置群组消息已读
  markGroupMessageAsRead() {}

  ///	删除本地消息
  deleteMessageFromLocalStorage() {}

  ///	向群组消息列表中添加一条消息
  insertGroupMessageToLocalStorage() {}

  ///	加入群组
  createGroup() {}

  ///	发送自定义消息
  joinGroup() {}

  ///	退出群组
  quitGroup() {}

  ///	解散群组（仅群主和管理员可以解散）
  dismissGroup() {}

  ///	获取已经加入的群列表（不包括已加入的直播群）
  getJoinedGroupList() {}

  ///	拉取群资料
  getGroupsInfo() {}

  ///	修改群资料
  setGroupInfo() {}

  ///	设置群消息的接收选项
  setReceiveMessageOpt() {}

  ///	获取群成员列表
  getGroupMemberList() {}

  ///	获取指定的群成员资料
  getGroupMembersInfo() {}

  ///	修改指定的群成员资料
  setGroupMemberInfo() {}

  ///	禁言
  muteGroupMember() {}

  ///	踢人
  kickGroupMember() {}

  ///	切换群成员的角色
  setGroupMemberRole() {}
  // 转让群主
  transferGroupOwner() {}

  ///	邀请他人入群
  inviteUserToGroup() {}

  ///	获取加群的申请列表
  getGroupApplicationList() {}

  ///	同意某一条加群申请
  acceptGroupApplication() {}

  ///	拒绝某一条加群申请
  refuseGroupApplication() {}

  ///	标记申请列表为已读
  setGroupApplicationRead() {}

  ///	设置会话监听器
  setConversationListener() {}

  ///	获取会话列表
  Future<List<ConversationItem>> getConversationList();

  ///	删除会话
  deleteConversation() {}

  ///	设置会话草稿
  setConversationDraft() {}

  ///	获取用户资料
  getUsersInfo() {}

  ///	修改个人资料
  setSelfInfo() {}

  ///	屏蔽某人的消息（添加该用户到黑名单中）
  addToBlackList() {}

  ///	取消某人的消息屏蔽（把该用户从黑名单中移除）
  deleteFromBlackList() {}

  ///	获取黑名单列表
  getBlackList() {}

  ///	获取好友列表
  getFriendList() {}
}
